package itMethod;
/*
方法重载（overload）:
用来判断什么时候需要使用方法重载
在同一个类中，如果“功能1”和“功能2”功能相似的时候，就可以考虑将它们的方法名一致，这样代码既美观又方便记忆

什么时候代码会发生方法重载？
条件1：在同一个类中
条件2：方法名相同
条件3：参数列表不同（包括参数的个数、类型、顺序不同）
只要满足以上三个条件，那么就可以认为方法和方法之间发生了重载机制
注意：
不管代码怎么写，最终一定能让Java编译器很好的区分这两个方法
方法重载和方法的“返回值类型”无关
方法重载和方法的“修饰符列表”无关
 */

public class OverLoadTest03 {
    public static void main(String[] args) {
        m1();

    }
    public static void m1(){
        System.out.println("m1无参数的执行");
    }
    //这个方法的参数个数和上面的方法参数个数不同
    public static void m1(int a){
        System.out.println("m1有一个int参数执行");
    }
    //参数的类型不同
    public static void m1(double a) {
        System.out.println("m1(double a)的执行");
    }
    //参数的顺序不同，也算不同
    public static void m1(double b,int a) {
        System.out.println("m1(double b,int a)的执行");
    }
    //分析：以下两个方法有没有发生方法的重载？
    //编译器报错，不是重载，是重复
//    public static void m2(int a,int b) {
//    }
//    public static void m2(int a,int b) {
//    }

    //这两个是重载，是重复
//    public static int m2(){
//    }
//    public static double m2(){
//    }


    //这个没有修饰符
   // void m6(){
    //}
    //这个有修饰列表
    //public static void m6(){
    //}
}
